package com.yswy.app.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.yswy.app.dto.AppUserUpdateReqVO;
import com.yswy.app.dto.LoginUserDto;
import com.yswy.common.model.ResultModel;
import com.yswy.domain.entity.AgreementOrder;
import com.yswy.domain.entity.AgreementOrderPayLog;
import com.yswy.domain.entity.AppUser;
import com.yswy.domain.entity.VipPrice;

public interface AppUserService extends IService<AppUser> {


    /**
     * 发送验证码
     * @param phone
     * @return
     */
    ResultModel sendCode(String  phone);

    /**
     * 小程序登录
     * @param loginUserDto
     * @return
     */
    ResultModel loginProgram(LoginUserDto loginUserDto , String ip , String channle , String v);


    /**
     * app登录
     * @param loginUserDto
     * @return
     */
    ResultModel loginApp(LoginUserDto loginUserDto , String ip , String channle , String v);
    /**
     * 获取用户详情
     * @return
     */
    ResultModel getUserInfo(Long userId);



    AppUser getUserByAuthToken(String  token);

    void updateUserDevice();
    /**
     * 注销用户信息
     * @param userId
     */
    void shielding(Long userId);


    /**
     * 修改用户性别
     * @param userId
     */
    void updateUserSex(Integer sex, Long userId);

    /**
     * 修改用户信息
     * @param req
     * @param userId
     */
    void updateInfo(AppUserUpdateReqVO req, Long userId);


    boolean vipBecomeDue(Long userId ,AppUser appUser);
    /**
     * 修改午夜剧场会员时间
     * @param userId
     */
    void addVipTime(Long userId, VipPrice vipPrice);
    void addVipTime(AgreementOrder agreementOrder);
    void addVipTime(Long userId, AgreementOrderPayLog agreementOrderPayLog);





}
